package com.ly.heart.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.domain.AjaxResult;
import com.ly.heart.domain.KingFinancePayBillEntity;
import com.ly.heart.domain.KingFinancePaySettlementBillEntity;
import com.ly.heart.domain.dto.KingFinancePayDto;
import com.ly.heart.domain.vo.KingFinancePayBillVo;

/**
 * 金蝶-财务-应付票据Service接口
 *
 * @author wutao
 * @date 2024-06-19
 */
public interface IKingFinancePayBillService extends IService<KingFinancePayBillEntity> {
    /**
     * 查询金蝶-财务-应付票据
     *
     * @param id 金蝶-财务-应付票据ID
     * @return 金蝶-财务-应付票据
     */
    KingFinancePayBillVo selectKingFinancePayBillEntityById ( String id );

    /**
     * 查询金蝶-财务-应付票据列表
     *
     * @param kingFinancePayBillEntity 金蝶-财务-应付票据
     * @return 金蝶-财务-应付票据集合
     */
    AjaxResult selectKingFinancePayBillEntityList ( KingFinancePayBillEntity kingFinancePayBillEntity );

    /**
     * 新增金蝶-财务-应付票据
     *
     * @param kingFinancePayBillEntity 金蝶-财务-应付票据
     * @return 结果
     */
    AjaxResult draft ( KingFinancePayBillEntity kingFinancePayBillEntity );

    AjaxResult submit ( KingFinancePayBillEntity kingFinancePayBillEntity );

    AjaxResult approve ( String id );

    /**
     * 修改金蝶-财务-应付票据
     *
     * @param kingFinancePayBillEntity 金蝶-财务-应付票据
     * @return 结果
     */
    AjaxResult updateKingFinancePayBillEntity ( KingFinancePayBillEntity kingFinancePayBillEntity );


    /**
     * 应付票据到期支付
     *
     * @param kingFinancePaySettlementBillEntity
     * @return
     */
    AjaxResult pay ( KingFinancePaySettlementBillEntity kingFinancePaySettlementBillEntity );

    /**
     * 应付票据退款操作
     * 生成付款退款单
     *
     * @param kingFinancePaySettlementBillEntity
     * @return
     */
    AjaxResult refund ( KingFinancePaySettlementBillEntity kingFinancePaySettlementBillEntity );

    /**
     * 批量删除金蝶-财务-应付票据
     *
     * @param ids 需要删除的金蝶-财务-应付票据ID
     * @return 结果
     */
    AjaxResult deleteKingFinancePayBillEntityByIds ( String[] ids );

    /**
     * 删除金蝶-财务-应付票据信息
     *
     * @param id 金蝶-财务-应付票据ID
     * @return 结果
     */
    int deleteKingFinancePayBillEntityById ( String id );
}
